package com.lx.t01_10;

import java.util.Set;

/**
 * @author c先生
 * @date 2022年04月25日 下午 3:52:36
 * @describe
 *描述
 * 数据表记录包含表索引index和数值value（int范围的正整数），请对表索引相同的记录进行合并，即将相同索引的数值进行求和运算，输出按照index值升序进行输出。
 *
 *
 * 提示:
 * 0 <= index <= 11111111
 * 1 <= value <= 100000
 *
 * 输入描述：
 * 先输入键值对的个数n（1 <= n <= 500）
 * 接下来n行每行输入成对的index和value值，以空格隔开
 *
 * 输出描述：
 * 输出合并后的键值对（多行）
 */

import java.util.*;
public class Main08 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        TreeMap<Long,Long> hm = new TreeMap<>();
        int count = sc.nextInt();
        for(int i = 0; i<count; i++){
            long index = sc.nextInt();
            long value = sc.nextInt();
            Set<Long> set = hm.keySet();
            boolean flag = true;
            for(long j:set){
                if(index == j){
                    hm.put(index,hm.get(index)+value);
                    flag = false;
                }
            }
            if(flag){
                hm.put(index,value);
            }


        }

        Set<Long> set2 = hm.keySet();
        for(Long i:set2){
            System.out.println(i+" "+hm.get(i));
        }
    }
}